This invention relates to the fields of biofeedback and virtual reality programming.
In the biofeedback field, a client who is undergoing biofeedback treatment is typically connected to a computer via one or more sensors. These sensors are often connected to various parts of the head to sense brain waves, and are also connected to measure other physiological conditions, such as heart rate, temperature, galvanic skin response, EMG, and EEG. These sensors, with amplifiers that gather the data, are connected to a computer system with software to acquire the data, and through various programming means, a certain display is created on a monitor for the client to view. As the data is displayed and created, the client is encouraged to control one or more of the measured physiological conditions to affect the display in a desired format. It is important to convey the data to the user in a useful and informative manner, which usually requires some type of data visualization method, but can include methods that are purely auditory or tactile. A meter bar or real-time line graph are common visualization examples, as are various 3D objects. Consequently, it is both desirable and necessary in biofeedback to have an effective and efficient display technique with which a client can interface, and to also be able to do so for both positive and negative reinforcement. Interfacing here refers to the client's visually or audibly sensing what is seen on the monitor and/or heard for the client to effectively control independently two or more physiological conditions so as to change the display.
The invention then is a kaleidoscopic object and effect (together a kaleidoscope), and method for creating a kaleidoscopic object and effect that is controllable in its appearance by physiological input to control the size, movement (vertice manipulation), color saturation, brightness and/or texture in real time in response to controlled physiological input. Kaleidoscope, and Kaleidoscopic Interface, are also used interchangeably herein.
This is accomplished in part using VRML, an acronym for Virtual Reality Modeling Language. It is a standardized file format specification for describing the modeling and animation of three-dimensional geometric objects. A VRML scene is defined by a text data file. A VRML scene may also contain animation information. Using VRML, a 3D scene is defined in a written language in terms of nodes, fields and events. Nodes are abstraction of real-world objects and concepts. Each type of node has a fixed set of fields and events. A field is a property or attribute of a node that can hold and sometimes receive and/or pass a value. Fields may contain data, much like a variable or array does in computer programming. There are two types of events—eventIn and eventOut.
By using a process called ‘routing’, messages can be sent between nodes along routes that are formed by and eventOut connected to an eventIn. A field that's combined with an eventIn and eventOut has the characteristics of all three components and is called an exposedField. Nodes are organized into a hierarchical representation of a 3D scene called a scene graph or scene tree.
Because VRML is a file format specification (a data file) and not executable code (a program), it is necessary to use a program capable of interpreting the VRML file and rendering it to the computer monitor for visual display. The rendering process also includes the handling of any real-time modifications used for animations, or for providing user interactivity. A program is also required to make it possible for a VRML scene to react to data generated from outside of the 3D scene itself. This is accomplished by the program gathering external date in whatever way is most relevant, and passing it ‘in’ to a rendered VRML scene via an eventIn, so that the data is accessible to the scene graph via eventOuts or exposedFields. A rendering engine (renderer) is required for a computer to display a 3D graphics scene, and usually has means to input data “in” to a scene, and to get/receive data from the scene in real time, so that bi-directional communication can be established between the scene's environment itself and application (executable code), or sets of applications, needing to interface with the scene.
It is an object of the invention to provide an interface display (object) and method for creating an interface display in biofeedback that allows for independent control of various features of the display in real time in response to corresponding independent control by the client so as to create a Kaleidoscopic effect having two or more features independently controlled by physiological inputs, that suggest to the client as to what the client is and is not supposed to do.
It is a further object of the invention to create an interface for biofeedback display in the form of a kaleidoscope capable of being manipulated in real time, including a process for handling incoming data from a biofeedback system, and to take said data and use it to manipulate the kaleidoscope so as to provide both an aesthetically rewarding and intuitively operational interface for biofeedback training. Other objects and features of the invention will be apparent as set forth in the detailed description and claims.